package com.daqian.chance.mybatis.plus.handler;

/**
 * 枚举处理器(todo 暂时无用)
 * <p>
 * @MappedTypes(value = {
 * Gender.class
 * })
 * @author: daqian
 */
//public class BaseEnumTypeHandler<E extends Enum<E>> extends BaseTypeHandler<E> {
//
//    private Class<E> type;
//    private final E[] enums;
//
//    public BaseEnumTypeHandler(Class<E> type) {
//        if (type == null) {
//            throw new IllegalArgumentException("Type argument cannot be null");
//        }
//        if (type.getEnumConstants() == null) {
//            throw new IllegalArgumentException(type.getSimpleName() + " cannot be converted");
//        }
//        this.type = type;
//        this.enums = type.getEnumConstants();
//
//    }
//
//    @Override
//    public void setNonNullParameter(PreparedStatement ps, int i, E parameter, JdbcType jdbcType) throws SQLException {
//        ps.setInt(i, parameter.ordinal());
//    }
//
//    @Override
//    public E getNullableResult(ResultSet rs, String columnName) throws SQLException {
//        int i = rs.getInt(columnName);
//        if (rs.wasNull()) {
//            return null;
//        } else {
//            try {
//                return enums[i];
//            } catch (Exception ex) {
//                throw new IllegalArgumentException("不能转换 " + i + " to " + type.getSimpleName() + " 按序数.", ex);
//            }
//        }
//    }
//
//    @Override
//    public E getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
//        int i = rs.getInt(columnIndex);
//        if (rs.wasNull()) {
//            return null;
//        } else {
//            try {
//                return enums[i];
//            } catch (Exception ex) {
//                throw new IllegalArgumentException("不能转换 " + i + " to " + type.getSimpleName() + " 按序数.", ex);
//            }
//        }
//    }
//
//    @Override
//    public E getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
//        int i = cs.getInt(columnIndex);
//        if (cs.wasNull()) {
//            return null;
//        } else {
//            try {
//                return enums[i];
//            } catch (Exception ex) {
//                throw new IllegalArgumentException("不能转换 " + i + " to " + type.getSimpleName() + " 按序数.", ex);
//            }
//        }
//    }
//
//}
